# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer:
pkgname=ocaml-markup
_pkgname=markup.ml
pkgver=0.7.6
pkgrel=5
pkgdesc="Error-recovering streaming HTML5 and XML parsers for OCaml"
url="https://aantron.github.io/markup.ml"
arch="all !x86 !armhf !armv7 !s390x !mips !mips64"  # limited by ocaml aport
license="BSD-2-Clause"
depends="ocaml-runtime ocaml-lwt ocaml-uchar ocaml-uutf"
depends_dev="$pkgname=$pkgver-r$pkgrel"
checkdepends="ocaml-result-dev ocaml-ounit-dev"
makedepends="dune ocaml ocaml-findlib ocaml-lwt-dev ocaml-uchar-dev
	ocaml-uutf-dev opam"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/aantron/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"

build() {
	cd "$builddir"

	ocaml src/configure.ml
	jbuilder build @install
}

check() {
	cd "$builddir"

	# FIXME: Allow to fail on ppc64le for now.
	case "$CARCH" in
		ppc64le) jbuilder runtest --no-buffer -j1 || true;;
		*) jbuilder runtest --no-buffer -j1;;
	esac
}

package() {
	cd "$builddir"

	mkdir -p "$pkgdir"/usr/lib/ocaml
	jbuilder install \
		--destdir="$pkgdir"/usr \
		--libdir="$pkgdir"/usr/lib/ocaml

	# There's just a readme and changelog.
	rm -Rf "$pkgdir"/usr/doc

	# Remove annotation files and sources.
	find "$pkgdir"/usr/lib/ocaml \
		\( -name '*.cmt' -o -name '*.cmti' -o -name '*.ml' \) \
		-a -delete
}

dev() {
	local sitelib="usr/lib/ocaml/markup"
	default_dev

	cd "$pkgdir"

	local path
	for path in $(find $sitelib -name '*.cmx' -o -name '*.cmxa' -o -name '*.mli*'); do
		mkdir -p "${path%/*}"
		mv "$path" "$subpkgdir"/${path%/*}/
	done
}

sha512sums="dcb06d0d271677842f76f3eabd64ac4aefbd8c8194c0ca8732d32120b4f1026378f989c2979706f752d3df45f878194283bd2754023033b61063878de4deb319  ocaml-markup-0.7.6.tar.gz"
